ПРЕЗЕНТАЦИЯ: https://disk.yandex.ru/i/M7PlP1D7SecjPA
ОПИСАНИЕ ПРОЕКТА:
Интернет-магазин товаров для дома «Пока все ещё тут» в срочном порядке ищет аналитиков. Вы поможете нашему магазину стать лучше, а клиентам — обустроить дом своей мечты. Наши ближайшие задачи — анализ товарного ассортимента и создание гипотез на основе полученных данных. «Пока все ещё тут» — мы создаём уют!
ЦЕЛЬ: Анализ товарного ассортимента
ОПИСАНИЕ ДАННЫХ:
Датасет описывает транзакции интернет-магазина товаров для дома и быта «Пока все ещё тут».
Колонки в ecommerce_dataset.csv :
date — дата заказа;customer_id — идентификатор покупателя;order_id — идентификатор заказа;product — наименование товара;quantity — количество товара в заказе;price — цена товара.ДЕКОМПОЗИЦИЯ
ПЛАН:
1 ИЗУЧИТЬ ДАННЫЕ
Открыть файл с данными и изучить общую информацию.
2 ПРЕДОБРАБОТКА ДАННЫХ
2.1 Проверка на пропуски.
2.3 Преобразование типов данных.
2.4 Проверка на дубликаты явные/неявные.
2.5 Проверка на аномалии в данных.
2.6 Добавление необходимых для анализа столбцов.
2.7 Обработка, исследование столбца product
3 ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ ДАННЫХ.
3.1 Разбить товары на категории.
3.2 Анализ в разрезе категорий (выручка, средний чек, продажи по месяцам, сезонность)
3.3 Провести ABC анализ
3.4 Проанализировать какие товары приносят большую прибыль компании. Анализ продаж.
3.5 Выделить основной и дополнительный ассортимент.
3.6 Сформулировать и проверить статистические гипотезы.
3.6.1 Проверка гипотезы: Средний объем продаж в основном и дополнительном ассортименте одинаковый.
3.6.2 Проверка гипотезы:Средняя выручка в основном и дополнительном ассортименте одинаковая.
5 ОБЩИЙ ВЫВОД
6 ПРЕЗЕНТАЦИЯ
#импорт необходимых библиотек
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
from matplotlib import pyplot as plt
import datetime as dt
from scipy import stats as st
import seaborn as sns
from plotly import graph_objects as go
import plotly.express as px
from pandas.plotting import register_matplotlib_converters
Откроем файл с данными и изучим общую информацию.
google_id = "1DkqEQWZoHh22YrsYcNUxSzlhgFqdl0tf"
data = pd.read_csv(f"https://drive.google.com/uc?export=download&id={google_id}" )
data.head()
| date | customer_id | order_id | product | quantity | price | |
|---|---|---|---|---|---|---|
| 0 | 2018100100 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | Комнатное растение в горшке Алое Вера, d12, h30 | 1 | 142.0 |
| 1 | 2018100100 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | Комнатное растение в горшке Кофе Арабика, d12,... | 1 | 194.0 |
| 2 | 2018100100 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | Радермахера d-12 см h-20 см | 1 | 112.0 |
| 3 | 2018100100 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | Хризолидокарпус Лутесценс d-9 см | 1 | 179.0 |
| 4 | 2018100100 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | Циперус Зумула d-12 см h-25 см | 1 | 112.0 |
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 7474 entries, 0 to 7473 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 7474 non-null int64 1 customer_id 7474 non-null object 2 order_id 7474 non-null int64 3 product 7474 non-null object 4 quantity 7474 non-null int64 5 price 7474 non-null float64 dtypes: float64(1), int64(3), object(2) memory usage: 350.5+ KB
В таблице 6 столбцов, 7474 строк.
Типы данных: date int64 -целочисленный customer_id object -строки order_id int64 -целочисленный product object -строки quantity int64 -целочисленный price float64 - вещественный
Нужно заменить типы следующих столбцов:date-на дату. Пропусков в столбцах нет.
data['date']=pd.to_datetime(data['date'],format='%Y%m%d%H')
data['date']
0 2018-10-01 00:00:00
1 2018-10-01 00:00:00
2 2018-10-01 00:00:00
3 2018-10-01 00:00:00
4 2018-10-01 00:00:00
...
7469 2020-01-30 21:00:00
7470 2020-01-30 22:00:00
7471 2020-01-31 02:00:00
7472 2020-01-31 12:00:00
7473 2020-01-31 15:00:00
Name: date, Length: 7474, dtype: datetime64[ns]
Проверим данные на явные/неявные дубликаты.
data.duplicated().sum()
0
Приведем столбец product к нижнему регистру.
data['product'] = data['product'].str.lower()
data['product']
0 комнатное растение в горшке алое вера, d12, h30
1 комнатное растение в горшке кофе арабика, d12,...
2 радермахера d-12 см h-20 см
3 хризолидокарпус лутесценс d-9 см
4 циперус зумула d-12 см h-25 см
...
7469 томата (помидор) черниченский черри № 116 сорт...
7470 дендробиум санок анна грин 1 ствол d-12 см
7471 подставка для обуви резиновая attribute 80x40 ...
7472 тагетис крупноцветковый рассада однолетних цве...
7473 вешалка для блузок 41 см красный attribute ahm781
Name: product, Length: 7474, dtype: object
data.duplicated(['product','order_id','customer_id','quantity', 'price']).sum()
#data.duplicated(['product','order_id','customer_id']).sum()
1864
data[data.duplicated(['product','order_id','customer_id','quantity', 'price'])]
#data[data.duplicated(['product','order_id','customer_id'])]
| date | customer_id | order_id | product | quantity | price | |
|---|---|---|---|---|---|---|
| 58 | 2018-10-02 18:00:00 | b731df05-98fa-4610-8496-716ec530a02c | 68474 | доска гладильная eurogold professional 130х48 ... | 1 | 3299.0 |
| 59 | 2018-10-02 19:00:00 | b731df05-98fa-4610-8496-716ec530a02c | 68474 | доска гладильная eurogold professional 130х48 ... | 1 | 3299.0 |
| 60 | 2018-10-02 20:00:00 | b731df05-98fa-4610-8496-716ec530a02c | 68474 | доска гладильная eurogold professional 130х48 ... | 1 | 3299.0 |
| 63 | 2018-10-03 04:00:00 | b731df05-98fa-4610-8496-716ec530a02c | 68474 | доска гладильная eurogold professional 130х48 ... | 1 | 3299.0 |
| 94 | 2018-10-04 13:00:00 | 32de7df8-8d4f-4c84-a7b9-c41d00dd83ba | 68522 | эвкалипт гунни d-17 см h-60 см | 1 | 1409.0 |
| ... | ... | ... | ... | ... | ... | ... |
| 6706 | 2019-10-28 10:00:00 | 57cc80a2-2610-4eef-9457-e7c3bf0c72f0 | 70960 | сумка-тележка 2-х колесная gimi argo красная | 1 | 1087.0 |
| 6711 | 2019-10-28 21:00:00 | cb65d08a-dae7-4890-aef0-bb9f79055e02 | 73108 | мирт d-9 см h-15 см | 1 | 134.0 |
| 6728 | 2019-10-31 00:00:00 | ffaeab76-3a8d-49ee-860f-17273b2fc8a2 | 73136 | таз пластмассовый со стиральной доской (иж), 1... | 1 | 397.0 |
| 6729 | 2019-10-31 02:00:00 | ffaeab76-3a8d-49ee-860f-17273b2fc8a2 | 73136 | таз пластмассовый со стиральной доской (иж), 1... | 1 | 397.0 |
| 6736 | 2019-10-31 16:00:00 | 344aa778-e436-419e-a9c6-9b8f37b7c1df | 73137 | сумка-тележка 2-х колесная gimi argo синяя | 1 | 1087.0 |
1864 rows × 6 columns
Удалим данные дубликаты, тк 'order_id' создается 1 уникальный для каждого заказа 'customer_id' в момент покупки. Дубликаты заказов созданы в разное время под одинаковым номером заказа.
data = data.drop_duplicates(['product','order_id','customer_id','quantity', 'price'])
data.describe(include='all').T
/tmp/ipykernel_48/1752636534.py:1: FutureWarning: Treating datetime data as categorical rather than numeric in `.describe` is deprecated and will be removed in a future version of pandas. Specify `datetime_is_numeric=True` to silence this warning and adopt the future behavior now. data.describe(include='all').T
| count | unique | top | freq | first | last | mean | std | min | 25% | 50% | 75% | max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| date | 5610 | 2751 | 2019-04-27 16:00:00 | 51 | 2018-10-01 | 2020-01-31 15:00:00 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| customer_id | 5610 | 2451 | c971fb21-d54c-4134-938f-16b62ee86d3b | 143 | NaT | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| order_id | 5610.0 | NaN | NaN | NaN | NaT | NaT | 55982.134403 | 32373.436923 | 12624.0 | 14815.0 | 69225.5 | 71927.5 | 112789.0 |
| product | 5610 | 2341 | пеларгония розебудная red pandora укорененный ... | 67 | NaT | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| quantity | 5610.0 | NaN | NaN | NaN | NaT | NaT | 2.608556 | 16.420261 | 1.0 | 1.0 | 1.0 | 1.0 | 1000.0 |
| price | 5610.0 | NaN | NaN | NaN | NaT | NaT | 530.084507 | 971.758307 | 9.0 | 90.0 | 150.0 | 524.0 | 14917.0 |
Осталось в датасете 5610 строк. В магазине представлен 2341 товар. Самый популярный пеларгония. Данные взяты за период 2018-10-01 по 2020-01-31. В датасете представлен 2451 покупатель. Самый активный покупатель c971fb21-d54c-4134-938f-16b62ee86d3b. Больше всего покупок было 2019-04-27 (51 покупка). Нужно проверить в столбце количество-1000шт (подозрительно для розницы).
data.boxplot(column='quantity')
<AxesSubplot:>
data.loc[data['quantity'] == 1000]
| date | customer_id | order_id | product | quantity | price | |
|---|---|---|---|---|---|---|
| 5456 | 2019-06-18 15:00:00 | 312e9a3e-5fca-43ff-a6a1-892d2b2d5ba6 | 71743 | вантуз с деревянной ручкой d14 см красный, bur... | 1000 | 675.0 |
Удалим строку 5456, тк кол-во 1000шт-это аномалия для розничного магазина.
data=data.drop(labels = [5456],axis = 0)
# Исследуем цену на товары
plt.hist(data['price'])
plt.title('Цена')
plt.xlabel('руб')
plt.ylabel('Количество товара')
plt.show()
data.boxplot('price')
<AxesSubplot:>
В основном в магазине цена товаров до 1000р, есть один товар со стоимостью 14917.0 руб. Посмотрим какая это позиция.
data.loc[data['price'] == 14917.0]
| date | customer_id | order_id | product | quantity | price | |
|---|---|---|---|---|---|---|
| 5992 | 2019-07-29 17:00:00 | 0d87f4ae-465a-4fac-81e6-5d629761783e | 72139 | сушилка уличная leifheit 85210 linomatic v 400... | 1 | 14917.0 |
Цена соответствует реальности.
Добавим новые столбцы месяц, день, день недели, час.
data['month'] = data['date'].dt.month
data['day'] = data['date'].dt.day
data['day_week'] = data['date'].dt.day_name()
data['hours'] = data['date'].dt.hour
data
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке алое вера, d12, h30 | 1 | 142.0 | 10 | 1 | Monday | 0 |
| 1 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке кофе арабика, d12,... | 1 | 194.0 | 10 | 1 | Monday | 0 |
| 2 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | радермахера d-12 см h-20 см | 1 | 112.0 | 10 | 1 | Monday | 0 |
| 3 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | хризолидокарпус лутесценс d-9 см | 1 | 179.0 | 10 | 1 | Monday | 0 |
| 4 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | циперус зумула d-12 см h-25 см | 1 | 112.0 | 10 | 1 | Monday | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 7469 | 2020-01-30 21:00:00 | 63208953-a8e4-4f77-9b47-3a46e7b72eee | 104002 | томата (помидор) черниченский черри № 116 сорт... | 2 | 38.0 | 1 | 30 | Thursday | 21 |
| 7470 | 2020-01-30 22:00:00 | d99d25f1-4017-4fcd-8d29-c580cc695a1a | 107336 | дендробиум санок анна грин 1 ствол d-12 см | 1 | 869.0 | 1 | 30 | Thursday | 22 |
| 7471 | 2020-01-31 02:00:00 | 2c9bd08d-8c55-4e7a-9bfb-8c56ba42c6d6 | 106336 | подставка для обуви резиновая attribute 80x40 ... | 1 | 354.0 | 1 | 31 | Friday | 2 |
| 7472 | 2020-01-31 12:00:00 | cdd17932-623e-415f-a577-3b31312fd0e2 | 102002 | тагетис крупноцветковый рассада однолетних цве... | 1 | 128.0 | 1 | 31 | Friday | 12 |
| 7473 | 2020-01-31 15:00:00 | 2e460a26-35af-453d-a369-a036e95a40e0 | 103225 | вешалка для блузок 41 см красный attribute ahm781 | 1 | 104.0 | 1 | 31 | Friday | 15 |
5609 rows × 10 columns
Выделим в столбце 'product' 2 первых слова
data[['part1', 'part2','part3']]=data['product'].str.split(" ", 2, expand = True)
data['name']=data['part1']+ " " +data['part2']
data['name']
0 комнатное растение
1 комнатное растение
2 радермахера d-12
3 хризолидокарпус лутесценс
4 циперус зумула
...
7469 томата (помидор)
7470 дендробиум санок
7471 подставка для
7472 тагетис крупноцветковый
7473 вешалка для
Name: name, Length: 5609, dtype: object
data.head()
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | part1 | part2 | part3 | name | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке алое вера, d12, h30 | 1 | 142.0 | 10 | 1 | Monday | 0 | комнатное | растение | в горшке алое вера, d12, h30 | комнатное растение |
| 1 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке кофе арабика, d12,... | 1 | 194.0 | 10 | 1 | Monday | 0 | комнатное | растение | в горшке кофе арабика, d12, h25 | комнатное растение |
| 2 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | радермахера d-12 см h-20 см | 1 | 112.0 | 10 | 1 | Monday | 0 | радермахера | d-12 | см h-20 см | радермахера d-12 |
| 3 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | хризолидокарпус лутесценс d-9 см | 1 | 179.0 | 10 | 1 | Monday | 0 | хризолидокарпус | лутесценс | d-9 см | хризолидокарпус лутесценс |
| 4 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | циперус зумула d-12 см h-25 см | 1 | 112.0 | 10 | 1 | Monday | 0 | циперус | зумула | d-12 см h-25 см | циперус зумула |
# удалим столбцы ['part1', 'part2','part3']
data.drop(['part1', 'part2','part3'], axis= 1 , inplace= True )
#pd.set_option('display.max_rows', None)
#pd.set_option('display.max_columns', None)
data
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | name | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке алое вера, d12, h30 | 1 | 142.0 | 10 | 1 | Monday | 0 | комнатное растение |
| 1 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке кофе арабика, d12,... | 1 | 194.0 | 10 | 1 | Monday | 0 | комнатное растение |
| 2 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | радермахера d-12 см h-20 см | 1 | 112.0 | 10 | 1 | Monday | 0 | радермахера d-12 |
| 3 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | хризолидокарпус лутесценс d-9 см | 1 | 179.0 | 10 | 1 | Monday | 0 | хризолидокарпус лутесценс |
| 4 | 2018-10-01 00:00:00 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | циперус зумула d-12 см h-25 см | 1 | 112.0 | 10 | 1 | Monday | 0 | циперус зумула |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 7469 | 2020-01-30 21:00:00 | 63208953-a8e4-4f77-9b47-3a46e7b72eee | 104002 | томата (помидор) черниченский черри № 116 сорт... | 2 | 38.0 | 1 | 30 | Thursday | 21 | томата (помидор) |
| 7470 | 2020-01-30 22:00:00 | d99d25f1-4017-4fcd-8d29-c580cc695a1a | 107336 | дендробиум санок анна грин 1 ствол d-12 см | 1 | 869.0 | 1 | 30 | Thursday | 22 | дендробиум санок |
| 7471 | 2020-01-31 02:00:00 | 2c9bd08d-8c55-4e7a-9bfb-8c56ba42c6d6 | 106336 | подставка для обуви резиновая attribute 80x40 ... | 1 | 354.0 | 1 | 31 | Friday | 2 | подставка для |
| 7472 | 2020-01-31 12:00:00 | cdd17932-623e-415f-a577-3b31312fd0e2 | 102002 | тагетис крупноцветковый рассада однолетних цве... | 1 | 128.0 | 1 | 31 | Friday | 12 | тагетис крупноцветковый |
| 7473 | 2020-01-31 15:00:00 | 2e460a26-35af-453d-a369-a036e95a40e0 | 103225 | вешалка для блузок 41 см красный attribute ahm781 | 1 | 104.0 | 1 | 31 | Friday | 15 | вешалка для |
5609 rows × 11 columns
data['name'].sort_values().unique()
array(['tepмокружка avex', 'автоматическая щетка', 'агератум рассада',
'адиантум лиза', 'азалия индика', 'аквилегия махровая',
'аквилегия обыкновенная', 'алиссум (лобулярия)', 'алиссум рассада',
'алиссум скальный', 'алоэ вера', 'альбука спиралис',
'амариллис red', 'анемона белый', 'антижир posh',
'антинакипин для', 'антуриум андрианум', 'антуриум тропик',
'аптения d-10', 'аптения d-12', 'арбуз волгоградец',
'арбуз огонек', 'арбуз сибирские', 'арбуз холодок', 'арбуз шуга',
'аргирантерум рассада', 'ароматизированное средство',
'артемизия (полынь', 'аспарагус d-12', 'аспарагус спренжери',
'астра альпийская', 'астра рассада', 'афеляндра скуарроса',
'бадан сердцелистный', 'базилик застольный', 'базилик зеленый',
'базилик овощной', 'базилик пурпурные', 'базилик смесь', 'бак для',
'баклажан самурай', 'бакопа ампельная', 'бакопа ампельная,',
'бальзам для', 'бальзамин валера', 'бальзамин новогвинейский',
'банка из', 'банка рондо', 'банка с', 'банка со',
'банка стеклянная', 'барвинок синий', 'бархатцы веселая',
'бегония ампельная,', 'бегония вечноцветущая', 'бегония клубневая',
'бегония элатиор,', 'бельевые прищепки', 'бензин для',
'бидон пластмассовый', 'блюдо pasabahce', 'блюдце утро',
'буддлея вейера', 'бузульник пржевальского', 'бульонница luminarc',
'ваза маскарад', 'вакуумный пакет', 'валериана лекарственная',
'ванна 70', 'вантуз черный', 'ведро ampari', 'ведро без',
'ведро для', 'ведро овальное', 'ведро пластиковое',
'ведро полимербыт', 'ведро резинопластиковое', 'веник для',
'веник сорго', 'венчик с', 'вербейник монетчатый',
'вербена fuhcsia', 'вербена red', 'вербена white',
'вербена ампельная,', 'вербена крупноцветковая', 'вербена микс',
'вербена рассада', 'веревка полипропиленовая',
'вероника колосковая', 'весы напольные', 'весы настольные',
'весы электронные', 'вешалка -', 'вешалка valiant',
'вешалка гардеробная', 'вешалка деревянная', 'вешалка для',
'вешалка металлическая', 'вешалка надверная', 'вешалка напольная',
'вешалка настенная', 'вешалка ника', 'вешалка с',
'вешалка самоклеющая', 'вешалка-перекладина valiant',
'вешалка-плечики 3', 'вешалка-плечики без',
'вешалка-стойка сакура', 'вешалка-стойка №',
'вешалка-сушилка gimi', 'вешалки мягкие', 'вигна лилиана',
'вилка столовая', 'виола рассада', 'виола рогатая', 'вкладыши для',
'газания рассада', 'гайлардия крупноцветковая', 'гардения d-9',
'гвоздика садовая', 'гвоздика стандартная', 'гвоздика травянка',
'гвоздика турецкая', 'георгина черная', 'герань домашняя',
'гербера d-13', 'гербера комнатная', 'гиацинт blue',
'гимнокалициум микс', 'гиностемма укорененный',
'гипоаллергенный концентрированный', 'гипсофила аврора',
'гладильная доска', 'гладильная доска-стремянка', 'глоксиния d-13',
'годеция рембранд', 'горох амброзия', 'гортензия метельчатая',
'гортензия микс', 'готовая скатерть', 'губка спираль',
'двуспальное постельное', 'девичий виноград', 'декабрист в',
'декоративная композиция', 'декоративная коробка',
'дендробиум санок', 'дендробиум фиолетовый',
'дендробиум яблоневый', 'держатель для', 'джункус пенсил',
'диффенбахия d-12', 'диффенбахия камилла', 'дозатор для',
'доска гладильная', 'доска разделочная', 'драцена фрагранс',
'душица обыкновенная', 'дыня алтайская', 'дыня дина',
'дыня золотой', 'дыня колхозница', 'дыня медовый', 'дыня млада',
'дыня награда', 'дыня симпатия', 'ель канадская', 'емкость для',
'ерш для', 'жестяная банка', 'жидкое мыло', 'завертка форточная',
'замиокулькас d-15', 'запасная насадка', 'защитная соль',
'защитный экран', 'зверобой продырявленный', 'земляника барон',
'земляника садовая', 'змееголовник молдавский', 'зубная паста',
'измельчитель овощей', 'измерительный алюминиевый',
'измерительный угольник,', 'импатиенс нью',
'искусственная композиция', 'искусственная лиана',
'искусственный лист', 'искусственный цветок',
'иссоп лекарственный', 'кабачок изумруд', 'каланхое каландива',
'калатея кроката', 'калатея микс', 'календула бронзовая',
'календула пинк', 'календула суприм', 'калибрахоа aloha',
'калибрахоа bloomtastic', 'калибрахоа mini', 'калибрахоа rave',
'калибрахоа sweet', 'калибрахоа ампельная,',
'калла крупноцветковая', 'каллуна гарден', 'калоцефалус брауни',
'камнеломка арендса', 'камнеломка тенистая', 'кампанула махровая',
'капсикум сальса', 'капуста белокочанная', 'капуста брокколи',
'капуста брюссельская', 'капуста декоративная', 'капуста кольраби',
'капуста цветная', 'карниз алюминиевый', 'карниз для',
'картофелемялка металлическая', 'кастрюля алюминиевая',
'кастрюля круглая', 'кастрюля чугунная', 'кастрюля эмалированная',
'кастрюля эмалированная,', 'кипарисовик лавсона',
'кипятильник электрический', 'кисточка силиконовая',
'клен ложноплатановый', 'клубника альба', 'клубника мара',
'клубника хоней', 'ключница картина', 'ковер придверный',
'коврик bacchetta', 'коврик dasch', 'коврик sochi', 'коврик в',
'коврик влаговпитывающий', 'коврик ворсовый', 'коврик для',
'коврик интерьерный', 'коврик кухонный', 'коврик придверный',
'коврик придверный,', 'коврик противоскользящий',
'коврик резиновый', 'коврик хлопковый', 'ковш пластмассовый',
'ковёр придверный', 'кодонанта укорененный', 'колеус рассада',
'колокольчик карпатский', 'колокольчик персиколистный',
'кольца для', 'комнатное растение', 'комод эльфпласт',
'комплект для', 'комплект махровых', 'комплект постельного',
'кондиционер для', 'контейнер герметичный', 'контейнер для',
'концентрат для', 'кореопсис золотой', 'кореопсис толл',
'корзина city', 'корзина для', 'корзина мягкая', 'корзина на',
'корзина пластиковая', 'корзинка с', 'кориандр в',
'кориандр стимул', 'короб стеллажный', 'коробка infinity',
'коробка для', 'коробка прямоугольная', 'корыто оцинкованное',
'космея клюквенный', 'космея кэнди', 'космея лимонад',
'космея очаровашка', 'космея попсокс', 'космея снежный',
'котел алюминиевый', 'котовник блю', 'кофе арабика', 'кофр для',
'кофр малый', 'крассула d-17', 'крассула овата', 'крепеж для',
'крокусы pickwick', 'кружка 350', 'кружка luminarc',
'кружка бамбук', 'кружка для', 'кружка марли', 'кружка мерная',
'кружка нордик', 'кружка о', 'кружка прозрачная', 'кружка с',
'кружка тачки', 'крышка оцинкованная', 'крючок одежный',
'крючок проволочный', 'кувшин luminarc', 'кувшин пластмассовый',
'кухонное полотенце', 'кухонные ножницы', 'лаванда d-9',
'лаванда в', 'лаванда торх', 'лаватера монт', 'лавр d-9', 'лавр в',
'лавр нобилис', 'лантана d-13', 'лантана в', 'лапчатка огненное',
'лапчатка травянистая', 'левкой рассада', 'лен небесная',
'лестница стремянка', 'лестница-стремянка dogrular',
'лестница-стремянка sarayli', 'лестница-стремянка примус',
'лилейник высокорослый', 'линейка, длина', 'литопс микс',
'лобелия ампельная,', 'лобелия рассада', 'лобелия регатта',
'ложка кухонная', 'ложка обувная', 'ложка столовая',
'ложка чайная', 'лопатка attribute', 'лопатка c', 'лоток knit',
'лоток для', 'лук порей', 'львиный зев', 'любисток удалец',
'мантоварка алюминиевая', 'мантоварка-пароварка webber',
'масленка коровка', 'маттиола ночная', 'махровое полотенце',
'махровый халат', 'мединилла магнифика', 'мелисса лекарственная',
'мерный стакан', 'мешок для', 'миксер delta', 'миксер василиса',
'миксер электрический', 'мимоза стыдливая',
'мини-сковорода marmiton', 'мирт d-20', 'мирт d-9', 'миска для',
'миска пластмассовая', 'миска фазенда', 'многолетнее растение',
'многофункциональный инструмент', 'модульная стеклянная',
'молодило в', 'молодило микс', 'монарда в', 'монарда гибридная',
'морковь детская', 'муляж "райские', 'муляж ананас',
'муляж апельсин', 'муляж баклажан', 'муляж банан', 'муляж банан,',
'муляж булка', 'муляж виноград', 'муляж виноград,', 'муляж вишня',
'муляж вишня,', 'муляж гранат', 'муляж груша', 'муляж груша,',
'муляж долька', 'муляж желудь', 'муляж зеленое', 'муляж клубника',
'муляж красное', 'муляж лайм', 'муляж лимон', 'муляж лимон,',
'муляж манго', 'муляж мандарин', 'муляж мандарин,',
'муляж морковь', 'муляж оранжевое', 'муляж перец', 'муляж перец,',
'муляж персик', 'муляж персик,', 'муляж персики', 'муляж томат',
'муляж томат,', 'муляж тыквы', 'муляж хлеб', 'муляж черешня',
'муляж чеснок', 'муляж яблоко', 'муляж яблоко,', 'муррайя d-9',
'мускари white', 'мусорный контейнер', 'мыло жидкое',
'мыло ручной', 'мыло-скраб с', 'мыльница пластмассовая',
'мята aura', 'мята d-9', 'мята колосистая', 'мята махито',
'мята перечная', 'набор vileda', 'набор бокалов', 'набор вешалок',
'набор для', 'набор инструментов', 'набор ковров', 'набор кружек',
'набор кухонных', 'набор махровых', 'набор ножей', 'набор посуды',
'набор прецизионных', 'набор прищепок', 'набор сверел',
'набор стаканов', 'набор столовых', 'набор форм', 'набор фужеров',
'набор эмалированных', 'наволочка wellness',
'наматрасник wellness', 'наматрацник natures',
'наматрицник-чехол natures', 'насадка для', 'насадка к',
'насадка на', 'насадка-моп rozenbal', 'насадка-отжим пластиковая',
'настенная сушилка', 'настольная гладильная',
'настурция драгоценность', 'настурция лунный',
'настурция орхидное', 'незабудка смесь', 'нетканые салфетки',
'нефролепис бостон', 'нивянник (ромашка)', 'новогоднее дерево',
'нож для', 'нож кухонный', 'нож поварской', 'нож столовый',
'нож универсальный', 'ножеточка универсальная', 'нолина в',
'обувница-3 квадро', 'овощеварка алюминиевая', 'овощечистка с',
'овсянница сизая', 'огурец алтай', 'огурец аристократ',
'огурец багратион', 'огурец боярский', 'огурец закусочный',
'огурец засолочный', 'одеяло silver', 'одеяло wellness',
'однолетнее растение', 'окномойка с', 'ополаскиватель для',
'орехоколка viva,', 'осина обыкновенная,', 'основание для',
'отбеливатель пероксоль', 'отделитель косточек', 'отжим для',
'папоротник страусник', 'паста для', 'паста зубная',
'патиссон диск', 'патиссон зонтик', 'патиссон нло',
'пахира акватика', 'пеларгония angeleyes', 'пеларгония d-13',
'пеларгония toscana', 'пеларгония грандифлора',
'пеларгония душистая', 'пеларгония зональная',
'пеларгония плющелистная', 'пеларгония розебудная',
'пеларгония розоцветная', 'пеларгония тюльпановидная', 'пена для',
'пеперомия d-12', 'перчатки extra', 'перчатки fabrikators',
'перчатки latex', 'перчатки латексные', 'перчатки резиновые',
'петля приварная', 'петля рояльная', 'петля-стрела пс-286',
'петрушка итальянский', 'петрушка корневая', 'петрушка листовая',
'петуния baby', 'петуния bordeaux', 'петуния crazytunia',
'петуния orange', 'петуния pegasus', 'петуния potunia',
'петуния sanguna', 'петуния sky', 'петуния surfinia',
'петуния surprice', 'петуния surprise', 'петуния sweetunia',
'петуния ампельная', 'петуния гибридная', 'петуния изи',
'петуния каскад', 'петуния крупноцветковая', 'петуния махровая',
'петуния простая', 'петуния рассада', 'петуния свитуния',
'пиретрум робинсон', 'платикодон махровый', 'плед флисовый',
'плечики пластмассовые', 'подарочный набор', 'подвесное кашпо',
'подголовник bacchetta', 'подголовник для', 'подкладка под',
'пододеяльник 214х150', 'подрукавник gimi', 'подрукавник leifheit',
'подрукавник складной', 'подсолнечник низкорослый',
'подставка для', 'подушка 40х40', 'подушка декоративная',
'покрывало karna', 'покрывало жаккард', 'покрывало стеганый',
'покрытие для', 'полка для', 'полки qwerty', 'половник attribute',
'полотенце кухонное', 'полотенце махровое',
'полотенце прессованное', 'портулак рассада', 'пресс для',
'примула акаулис', 'примула желтая', 'примула комнатная',
'примула рассада', 'прищепки для', 'пробка для',
'просеиватель для', 'простынь вафельная', 'простыня двуспальная',
'простыня на', 'простыня сатиновая', 'противень прямоугольный',
'пружина дверная', 'пряные травы', 'пуансетия d-12',
'пуансеттия d-12', 'пуансеттия d-15', 'пуансеттия d-23',
'пуансеттия в', 'пылесос delta', 'пьезозажигалка с',
'радермахера d-12', 'разделочная доска', 'ранункулус клуни',
'рассада арбуза', 'рассада в', 'рассада дыни', 'рассада зелени',
'рассада кабачка', 'рассада кабачок', 'рассада капусты',
'рассада клубники', 'рассада огурец', 'рассада огурца',
'рассада остеоспермум', 'рассада патиссона', 'рассада пеларгония',
'рассада перца', 'рассада пряной', 'рассада томата',
'рассада тыквы', 'рассекатель пламени', 'решетка вентиляционная',
'роза кордана', 'роза кустовая', 'роза мини', 'роза одноголовая',
'роза палас', 'роза патио', 'роза садовая', 'роза чайно-гибридная',
'розмарин d-12', 'розмарин d-9', 'розмарин в', 'ролик для',
'рудбекия тайгер', 'рукав для', 'ручка мебельная',
'ручка-скоба рс-100', 'рыбочистка металлическая,', 'рыбочистка с',
'салат рукола', 'салатник luminarc', 'салатник амори',
'салатник аспен', 'салатник воларэ', 'салатник карин',
'салатник колорама', 'салатник рапсоди', 'салатник романтик',
'салатник эмпилабль', 'салфетка protec', 'салфетка камушки',
'салфетка махровая', 'салфетка на', 'салфетница металлическая',
'сальвия рассада', 'сантолина d-9', 'сахарница фарфоровая',
'сверло по', 'сверло-фреза, 6', 'сверло-фреза, 8',
'светильник настольный', 'седум (очиток)', 'седум почвопокровный',
'сельдерей листовой', 'сервировочная салфетка', 'сетка для',
'сиденье в', 'сиденье для', 'синнингия (глоксиния)', 'сито webber',
'скалка силиконовая,', 'скатерть 150х120', 'скатерть 180',
'скатерть 350х150', 'скатерть 350х180', 'скатерть dasch',
'скатерть meiwa', 'скатерть towa', 'скатерть ажурная',
'скатерть азалия', 'скатерть арлет', 'скатерть беатрис',
'скатерть виниловая', 'скатерть джулия', 'скатерть династия',
'скатерть жаклин', 'скатерть из', 'скатерть круглая',
'скатерть лувр', 'скатерть муза', 'скатерть прямоугольная',
'скатерть рим', 'скатерть сидней', 'скиммия японская',
'складная картонная', 'складной детский', 'сковорода hard',
'сковорода scovo', 'сковорода алюминиевая', 'скребок 44',
'скребок для', 'скребок кондитерский', 'сменная насадка',
'сменный блок', 'сметка с', 'смолевка звездный', 'совок для',
'совок и', 'совок металический', 'соковарка webber',
'соковарка алюминиевая', 'соковыжималка для', 'соланум d-10',
'солидаго желтый', 'сотейник алюминиевый', 'спатифиллум d-7',
'спатифиллум свит', 'спатифиллум шопен', 'средство для',
'средство против', 'стакан для', 'стакан низкий',
'стакан пластмассовый', 'стеклянная крышка', 'стеллаж для',
'стиральный биопорошок', 'столовая ложка', 'столовый нож',
'стремянка 5', 'стремянка 7', 'стремянка colombo',
'стремянка dogrular', 'стремянка eurogold', 'стремянка framar',
'стремянка scab', 'стремянка алюминиевая', 'стремянка бытовая',
'стремянка металлическая', 'стремянка-табурет алюминиевая',
'стремянки colombo', 'стяжка оконная', 'стяжки для',
'суккулент микс', 'сумка для', 'сумка хозяйственная',
'сумка-тележка 2-х', 'сумка-тележка 3-х', 'сумка-тележка brava',
'сумка-тележка delta', 'сумка-тележка gimi', 'сумка-тележка twin',
'сумка-тележка хозяйственная', 'сушилка meliconi', 'сушилка для',
'сушилка мульти', 'сушилка уличная', 'сциндапсус в',
'табак бордовый', 'табак душистый', 'табак курительный',
'тагетис крупноцветковый', 'таз алюминиевый,', 'таз пластмассовый',
'тарелка десертная', 'тарелка обеденная', 'тарелка суповая',
'тележка багажная', 'тележка хозяйственная', 'терка webber',
'терка для', 'термокружка alpenkok', 'термокружка вакуумная',
'термокружка забава', 'термокружка яромир', 'термометр на',
'термометр уличный', 'термос 1л', 'термос со',
'термостакан webber', 'тимьян d-9', 'тимьян в', 'тимьян крымский',
'тимьян овощной', 'ткань для', 'ткань универсальная',
'толкушка деревянная', 'толкушка для', 'томат балконное',
'томат государь', 'томат детерминантный', 'томата (помидор)',
'тортница curver', 'тряпка для', 'тряпкодержатель с',
'тыква крупноплодная', 'тюльпан louvre', 'увлажняющая маска',
'уголок оконный', 'укроп обильнолистный', 'универсальное средство',
'универсальный нож', 'урна уличная', 'урна-пепельница из',
'утюг delta', 'утюг электрический', 'фал капроновый',
'фаленопсис желтый', 'фаленопсис королевский', 'фаленопсис люкс',
'фарфоровая кружка', 'фатсия d-17', 'фатсия японская',
'фен дорожный', 'фиалка d-11', 'фиалка d-9', 'фиалка карнавал',
'фиалка махровая', 'фиалка микс', 'фиалка химера',
'физостегия вергинская', 'фиксатор-шар хром',
'фикус каучуконосный', 'фиттония скелетон', 'флокс друммонда',
'флокс метельчатый', 'флокс растопыренный', 'форма аlpenkok',
'форма для', 'фоторамка alparaisa', 'фуксия bella', 'фуксия blue',
'фуксия dark', 'фуксия e4', 'фуксия swingtime', 'фуксия ампельная',
'фуксия ампельная,', 'фуксия прямостоячая', 'халат вафельный',
'хамедорея d-12', 'хлебница webber', 'хлебница деревянная',
'хлебница пластмасовая', 'хлорофитум d-13', 'хлорофитум d-7',
'холодная сварка', 'хоста микс', 'хризантема белая',
'хризантема корейская', 'хризантема космо', 'хризантема красная',
'хризантема кустовая', 'хризантема сиреневая',
'хризолидокарпус лутесценс', 'цветок искусственный',
'цветущее комнатное', 'целозия гребенчатая', 'цикламен d-12',
'цикламен d-13', 'цикламен d-15', 'цикламен комнатный',
'цикламен розовый', 'цикламен, цвет', 'цинерания рассада',
'цинерария серебряная', 'циния рассада', 'цинния ацтек',
'цинния коралловая', 'цинния оранжевый', 'цинния хаага',
'циперус зумула', 'цитрофортунелла кумкват', 'чабер bolero',
'чайная ложка', 'чайник заварочный', 'чайник со',
'чайник электрический', 'чайник эмалированный', 'чайный набор',
'чехол eurogold', 'чехол для', 'чистящий крем', 'шалфей овощной',
'швабра leifheit', 'швабра для', 'швабра многофункциональная',
'швабра многофункциональная,', 'швабра сальса',
'швабра хозяйственная', 'шеффлера голд', 'шеффлера лузеана',
'шило с', 'шнур резиновый', 'шнур хозяйственный',
'шпагат полипропиленовый', 'шпингалет 80', 'шприц кондитерский',
'штанга для', 'штангенциркуль 150', 'штора для', 'штора со',
'штора текстильная', 'щетка для', 'щетка палубная',
'щетка универсальная', 'щетка хозяйственная', 'щетка-сметка 3-х',
'щетка-сметка 4-х', 'щетка-сметка с', 'щетка-утюжок с',
'щётка для', 'эвкалипт гунни', 'эвкалипт сильвердроп',
'электроштопор qwerty', 'энотера миссурийская',
'эпипремнум ауреум', 'этажерка 2', 'этажерка для',
'этажерка цветочная', 'эхеверия лила', 'эхеверия микс',
'эхеверия перл', 'эхинацея микс', 'эхинокактус грузони',
'эшшольция карминный', 'юкка нитчатая', 'ясколка войлочная',
'ящик для', 'ящик почтовый', 'ёрш бутылочный', 'ёрш для',
'ёрш радиаторный', 'ёрш унитазный'], dtype=object)
# КАТЕГОРИЯ: сад/огород/растения
flower = ['агератум рассада',
'адиантум лиза', 'азалия индика', 'аквилегия махровая',
'аквилегия обыкновенная', 'алиссум (лобулярия)', 'алиссум рассада',
'алиссум скальный', 'алоэ вера', 'альбука спиралис',
'амариллис red', 'анемона белый',
'антуриум андрианум', 'антуриум тропик',
'аптения d-10', 'аптения d-12', 'арбуз волгоградец',
'арбуз огонек', 'арбуз сибирские', 'арбуз холодок', 'арбуз шуга',
'аргирантерум рассада',
'артемизия (полынь', 'аспарагус d-12', 'аспарагус спренжери',
'астра альпийская', 'астра рассада', 'афеляндра скуарроса',
'бадан сердцелистный', 'базилик застольный', 'базилик зеленый',
'базилик овощной', 'базилик пурпурные', 'базилик смесь',
'баклажан самурай', 'бакопа ампельная', 'бакопа ампельная,',
'бальзамин валера', 'бальзамин новогвинейский',
'барвинок синий', 'бархатцы веселая',
'бегония ампельная,', 'бегония вечноцветущая', 'бегония клубневая',
'бегония элатиор,',
'буддлея вейера', 'бузульник пржевальского','валериана лекарственная',
'вербейник монетчатый',
'вербена fuhcsia', 'вербена red', 'вербена white',
'вербена ампельная,', 'вербена крупноцветковая', 'вербена микс',
'вербена рассада',
'вероника колосковая',
'вигна лилиана',
'виола рассада', 'виола рогатая',
'газания рассада', 'гайлардия крупноцветковая', 'гардения d-9',
'гвоздика садовая', 'гвоздика стандартная', 'гвоздика травянка',
'гвоздика турецкая', 'георгина черная', 'герань домашняя',
'гербера d-13', 'гербера комнатная', 'гиацинт blue',
'гимнокалициум микс', 'гиностемма укорененный',
'гипсофила аврора',
'глоксиния d-13',
'годеция рембранд', 'горох амброзия', 'гортензия метельчатая',
'гортензия микс','девичий виноград', 'декабрист в',
'дендробиум санок', 'дендробиум фиолетовый',
'дендробиум яблоневый','джункус пенсил',
'диффенбахия d-12', 'диффенбахия камилла',
'драцена фрагранс',
'душица обыкновенная', 'дыня алтайская', 'дыня дина',
'дыня золотой', 'дыня колхозница', 'дыня медовый', 'дыня млада',
'дыня награда', 'дыня симпатия', 'ель канадская',
'замиокулькас d-15', 'зверобой продырявленный', 'земляника барон',
'земляника садовая', 'змееголовник молдавский','импатиенс нью',
'иссоп лекарственный', 'кабачок изумруд', 'каланхое каландива',
'калатея кроката', 'калатея микс', 'календула бронзовая',
'календула пинк', 'календула суприм', 'калибрахоа aloha',
'калибрахоа bloomtastic', 'калибрахоа mini', 'калибрахоа rave',
'калибрахоа sweet', 'калибрахоа ампельная,',
'калла крупноцветковая', 'каллуна гарден', 'калоцефалус брауни',
'камнеломка арендса', 'камнеломка тенистая', 'кампанула махровая',
'капсикум сальса', 'капуста белокочанная', 'капуста брокколи',
'капуста брюссельская','капуста кольраби',
'капуста цветная','кипарисовик лавсона',
'клен ложноплатановый', 'клубника альба', 'клубника мара',
'клубника хоней','кодонанта укорененный', 'колеус рассада',
'колокольчик карпатский', 'колокольчик персиколистный',
'комнатное растение','кореопсис золотой', 'кореопсис толл',
'кориандр в',
'кориандр стимул',
'космея клюквенный', 'космея кэнди', 'космея лимонад',
'космея очаровашка', 'космея попсокс', 'космея снежный',
'кофе арабика',
'крассула d-17', 'крассула овата',
'крокусы pickwick','лаванда d-9',
'лаванда в', 'лаванда торх', 'лаватера монт', 'лавр d-9', 'лавр в',
'лавр нобилис', 'лантана d-13', 'лантана в', 'лапчатка огненное',
'лапчатка травянистая', 'левкой рассада', 'лен небесная',
'лилейник высокорослый','литопс микс',
'лобелия ампельная,', 'лобелия рассада', 'лобелия регатта',
'лук порей', 'львиный зев', 'любисток удалец',
'маттиола ночная','мединилла магнифика', 'мелисса лекарственная',
'мимоза стыдливая',
'мирт d-20', 'мирт d-9','многолетнее растение',
'молодило в', 'молодило микс', 'монарда в', 'монарда гибридная',
'морковь детская','муррайя d-9',
'мускари white',
'мята aura', 'мята d-9', 'мята колосистая', 'мята махито',
'мята перечная',
'настурция драгоценность', 'настурция лунный',
'настурция орхидное', 'незабудка смесь',
'нефролепис бостон', 'нивянник (ромашка)', 'новогоднее дерево',
'нолина в',
'овсянница сизая', 'огурец алтай', 'огурец аристократ',
'огурец багратион', 'огурец боярский', 'огурец закусочный',
'огурец засолочный',
'однолетнее растение','осина обыкновенная,',
'папоротник страусник',
'патиссон диск', 'патиссон зонтик', 'патиссон нло',
'пахира акватика', 'пеларгония angeleyes', 'пеларгония d-13',
'пеларгония toscana', 'пеларгония грандифлора',
'пеларгония душистая', 'пеларгония зональная',
'пеларгония плющелистная', 'пеларгония розебудная',
'пеларгония розоцветная', 'пеларгония тюльпановидная',
'пеперомия d-12',
'петрушка итальянский', 'петрушка корневая', 'петрушка листовая',
'петуния baby', 'петуния bordeaux', 'петуния crazytunia',
'петуния orange', 'петуния pegasus', 'петуния potunia',
'петуния sanguna', 'петуния sky', 'петуния surfinia',
'петуния surprice', 'петуния surprise', 'петуния sweetunia',
'петуния ампельная', 'петуния гибридная', 'петуния изи',
'петуния каскад', 'петуния крупноцветковая', 'петуния махровая',
'петуния простая', 'петуния рассада', 'петуния свитуния',
'пиретрум робинсон', 'платикодон махровый','подарочный набор','подсолнечник низкорослый',
'портулак рассада', 'подвесное кашпо',
'примула акаулис', 'примула желтая', 'примула комнатная',
'примула рассада', 'пряные травы', 'пуансетия d-12',
'пуансеттия d-12', 'пуансеттия d-15', 'пуансеттия d-23',
'пуансеттия в',
'радермахера d-12','ранункулус клуни',
'рассада арбуза', 'рассада в', 'рассада дыни', 'рассада зелени',
'рассада кабачка', 'рассада кабачок', 'рассада капусты',
'рассада клубники', 'рассада огурец', 'рассада огурца',
'рассада остеоспермум', 'рассада патиссона', 'рассада пеларгония',
'рассада перца', 'рассада пряной', 'рассада томата',
'рассада тыквы',
'роза кордана', 'роза кустовая', 'роза мини', 'роза одноголовая',
'роза палас', 'роза патио', 'роза садовая', 'роза чайно-гибридная',
'розмарин d-12', 'розмарин d-9', 'розмарин в',
'рудбекия тайгер',
'салат рукола',
'сальвия рассада', 'сантолина d-9','седум (очиток)', 'седум почвопокровный',
'сельдерей листовой','синнингия (глоксиния)','соланум d-10',
'солидаго желтый','спатифиллум d-7',
'спатифиллум свит', 'спатифиллум шопен',
'суккулент микс','сциндапсус в',
'табак бордовый', 'табак душистый', 'табак курительный',
'тагетис крупноцветковый','тимьян d-9', 'тимьян в', 'тимьян крымский',
'тимьян овощной','томат балконное',
'томат государь', 'томат детерминантный', 'томата (помидор)',
'тыква крупноплодная', 'тюльпан louvre','укроп обильнолистный',
'фаленопсис желтый', 'фаленопсис королевский', 'фаленопсис люкс',
'фатсия d-17', 'фатсия японская',
'фиалка d-11', 'фиалка d-9', 'фиалка карнавал',
'фиалка махровая', 'фиалка микс', 'фиалка химера',
'физостегия вергинская',
'фикус каучуконосный', 'фиттония скелетон', 'флокс друммонда',
'флокс метельчатый', 'флокс растопыренный', 'фуксия bella', 'фуксия blue',
'фуксия dark', 'фуксия e4', 'фуксия swingtime', 'фуксия ампельная',
'фуксия ампельная,', 'фуксия прямостоячая',
'хамедорея d-12', 'хлорофитум d-13', 'хлорофитум d-7',
'хоста микс', 'хризантема белая',
'хризантема корейская', 'хризантема космо', 'хризантема красная',
'хризантема кустовая', 'хризантема сиреневая',
'хризолидокарпус лутесценс',
'цветущее комнатное', 'целозия гребенчатая', 'цикламен d-12',
'цикламен d-13', 'цикламен d-15', 'цикламен комнатный',
'цикламен розовый', 'цикламен, цвет', 'цинерания рассада',
'цинерария серебряная', 'циния рассада', 'цинния ацтек',
'цинния коралловая', 'цинния оранжевый', 'цинния хаага',
'циперус зумула', 'цитрофортунелла кумкват', 'чабер bolero',
'шалфей овощной',
'шеффлера голд', 'шеффлера лузеана',
'эвкалипт гунни', 'эвкалипт сильвердроп',
'энотера миссурийская',
'эпипремнум ауреум','эхеверия лила', 'эхеверия микс',
'эхеверия перл', 'эхинацея микс', 'эхинокактус грузони',
'эшшольция карминный', 'юкка нитчатая', 'ясколка войлочная','котовник блю', 'смолевка звездный', 'скиммия японская', 'капуста декоративная']
# КАТЕГОРИЯ: хозяйственные товары
household_product=['автоматическая щетка',
'бак для',
'бельевые прищепки','вакуумный пакет',
'ванна 70', 'вантуз черный', 'ведро ampari', 'ведро без',
'ведро для', 'ведро овальное', 'ведро пластиковое',
'ведро полимербыт', 'ведро резинопластиковое', 'веник для',
'веник сорго', 'венчик с','веревка полипропиленовая',
'весы напольные', 'весы настольные',
'весы электронные','вкладыши для',
'гладильная доска', 'гладильная доска-стремянка','губка спираль',
'держатель для','дозатор для',
'доска гладильная',
'ерш для','завертка форточная',
'запасная насадка',
'кольца для','комод эльфпласт',
'комплект для','контейнер герметичный', 'контейнер для',
'корзина city', 'корзина для', 'корзина мягкая', 'корзина на',
'корзина пластиковая', 'корзинка с',
'коробка прямоугольная', 'корыто оцинкованное',
'кофр для',
'кофр малый','крючок одежный',
'крючок проволочный','кухонные ножницы',
'лестница стремянка', 'лестница-стремянка dogrular',
'лестница-стремянка sarayli', 'лестница-стремянка примус',
'ложка обувная','мешок для','мусорный контейнер','мыльница пластмассовая',
'набор vileda',
'набор для','набор прищепок','насадка для', 'насадка к',
'насадка на', 'насадка-моп rozenbal', 'насадка-отжим пластиковая',
'настенная сушилка', 'настольная гладильная',
'нетканые салфетки',
'ножеточка универсальная',
'окномойка с','отжим для',
'перчатки extra', 'перчатки fabrikators',
'перчатки latex', 'перчатки латексные', 'перчатки резиновые',
'плечики пластмассовые',
'подголовник bacchetta', 'подголовник для', 'подкладка под',
'подрукавник gimi', 'подрукавник leifheit',
'подрукавник складной',
'подставка для',
'покрытие для','прищепки для', 'пробка для',
'пьезозажигалка с',
'рассекатель пламени', 'решетка вентиляционная',
'ролик для',
'рукав для', 'ручка мебельная',
'ручка-скоба рс-100','салфетница металлическая',
'сетка для',
'сиденье в', 'сиденье для',
'складная картонная', 'скребок 44',
'скребок для','сменная насадка',
'сменный блок', 'сметка с', 'совок для',
'совок и', 'совок металический','стакан для',
'стремянка 5', 'стремянка 7', 'стремянка colombo',
'стремянка dogrular', 'стремянка eurogold', 'стремянка framar',
'стремянка scab', 'стремянка алюминиевая', 'стремянка бытовая',
'стремянка металлическая', 'стремянка-табурет алюминиевая',
'стремянки colombo', 'стяжка оконная', 'стяжки для',
'сумка для', 'сумка хозяйственная',
'сумка-тележка 2-х', 'сумка-тележка 3-х', 'сумка-тележка brava',
'сумка-тележка delta', 'сумка-тележка gimi', 'сумка-тележка twin',
'сумка-тележка хозяйственная', 'сушилка meliconi', 'сушилка для',
'сушилка мульти', 'сушилка уличная','таз алюминиевый,', 'таз пластмассовый',
'тележка багажная', 'тележка хозяйственная',
'термометр на',
'термометр уличный', 'ткань для', 'ткань универсальная',
'тряпка для', 'тряпкодержатель с',
'уголок оконный', 'урна уличная', 'урна-пепельница из',
'фал капроновый',
'фиксатор-шар хром',
'чехол eurogold', 'чехол для',
'швабра leifheit', 'швабра для', 'швабра многофункциональная',
'швабра многофункциональная,', 'швабра сальса',
'швабра хозяйственная',
'шило с', 'шнур резиновый', 'шнур хозяйственный',
'шпагат полипропиленовый', 'шпингалет 80',
'штанга для','штора для', 'штора со',
'штора текстильная', 'щетка для', 'щетка палубная',
'щетка универсальная', 'щетка хозяйственная', 'щетка-сметка 3-х',
'щетка-сметка 4-х', 'щетка-сметка с', 'щетка-утюжок с',
'щётка для',
'этажерка 2', 'этажерка для',
'этажерка цветочная',
'ящик для', 'ящик почтовый', 'ёрш бутылочный', 'ёрш для',
'ёрш радиаторный', 'ёрш унитазный']
# КАТЕГОРИЯ: посуда
dishes=['tepмокружка avex',
'банка из', 'банка рондо', 'банка с', 'банка со',
'банка стеклянная',
'бидон пластмассовый', 'блюдо pasabahce', 'блюдце утро','бульонница luminarc',
'венчик с',
'вилка столовая',
'доска разделочная', 'емкость для',
'жестяная банка','защитный экран',
'измельчитель овощей',
'картофелемялка металлическая', 'кастрюля алюминиевая',
'кастрюля круглая', 'кастрюля чугунная', 'кастрюля эмалированная',
'кастрюля эмалированная,','кисточка силиконовая',
'ковш пластмассовый',
'котел алюминиевый',
'кружка 350', 'кружка luminarc',
'кружка бамбук', 'кружка для', 'кружка марли', 'кружка мерная',
'кружка нордик', 'кружка о', 'кружка прозрачная', 'кружка с',
'кружка тачки', 'крышка оцинкованная',
'кувшин luminarc', 'кувшин пластмассовый',
'ложка кухонная','ложка столовая',
'ложка чайная', 'лопатка attribute', 'лопатка c', 'лоток knit',
'лоток для',
'мантоварка алюминиевая', 'мантоварка-пароварка webber',
'масленка коровка',
'мерный стакан',
'мини-сковорода marmiton','миска для',
'миска пластмассовая', 'миска фазенда',
'модульная стеклянная',
'набор бокалов',
'набор кружек',
'набор ножей', 'набор посуды',
'набор стаканов', 'набор столовых', 'набор форм', 'набор фужеров',
'набор эмалированных',
'нож для', 'нож кухонный', 'нож поварской', 'нож столовый',
'нож универсальный',
'овощеварка алюминиевая', 'овощечистка с',
'орехоколка viva,',
'отделитель косточек',
'половник attribute',
'пресс для',
'просеиватель для','противень прямоугольный',
'разделочная доска',
'рыбочистка металлическая,', 'рыбочистка с',
'салатник luminarc', 'салатник амори',
'салатник аспен', 'салатник воларэ', 'салатник карин',
'салатник колорама', 'салатник рапсоди', 'салатник романтик',
'салатник эмпилабль',
'сахарница фарфоровая',
'сито webber',
'скалка силиконовая,', 'сковорода hard',
'сковорода scovo', 'сковорода алюминиевая','скребок кондитерский', 'соковарка webber',
'соковарка алюминиевая', 'соковыжималка для',
'сотейник алюминиевый','стакан низкий',
'стакан пластмассовый', 'стеклянная крышка', 'столовая ложка', 'столовый нож',
'тарелка десертная', 'тарелка обеденная', 'тарелка суповая',
'терка webber',
'терка для', 'термокружка alpenkok', 'термокружка вакуумная',
'термокружка забава', 'термокружка яромир',
'термос 1л', 'термос со',
'термостакан webber',
'толкушка деревянная', 'толкушка для',
'тортница curver',
'универсальный нож',
'фарфоровая кружка',
'форма аlpenkok',
'форма для',
'хлебница webber', 'хлебница деревянная',
'хлебница пластмасовая',
'чайная ложка', 'чайник заварочный', 'чайник со',
'чайник эмалированный', 'чайный набор',
'шприц кондитерский']
# КАТЕГОРИЯ: бытовая химия/гигиена
hygiene=['антижир posh',
'антинакипин для','ароматизированное средство',
'бальзам для',
'бензин для',
'гипоаллергенный концентрированный', 'жидкое мыло',
'защитная соль',
'зубная паста',
'кондиционер для',
'концентрат для',
'мыло жидкое',
'мыло ручной', 'мыло-скраб с',
'отбеливатель пероксоль',
'паста для', 'паста зубная',
'пена для', 'ополаскиватель для',
'средство для',
'средство против',
'стиральный биопорошок',
'увлажняющая маска',
'универсальное средство',
'чистящий крем']
# КАТЕГОРИЯ: текстиль
textile=['готовая скатерть',
'двуспальное постельное',
'комплект махровых', 'комплект постельного',
'кухонное полотенце','махровое полотенце',
'махровый халат',
'набор кухонных', 'набор махровых','наволочка wellness',
'наматрасник wellness', 'наматрацник natures',
'наматрицник-чехол natures',
'одеяло silver', 'одеяло wellness',
'плед флисовый',
'пододеяльник 214х150','подушка 40х40', 'подушка декоративная',
'покрывало karna', 'покрывало жаккард', 'покрывало стеганый',
'полотенце кухонное', 'полотенце махровое',
'полотенце прессованное',
'простынь вафельная', 'простыня двуспальная',
'простыня на', 'простыня сатиновая',
'салфетка protec', 'салфетка камушки',
'салфетка махровая', 'салфетка на',
'сервировочная салфетка',
'скатерть 150х120', 'скатерть 180',
'скатерть 350х150', 'скатерть 350х180', 'скатерть dasch',
'скатерть meiwa', 'скатерть towa', 'скатерть ажурная',
'скатерть азалия', 'скатерть арлет', 'скатерть беатрис',
'скатерть виниловая', 'скатерть джулия', 'скатерть династия',
'скатерть жаклин', 'скатерть из', 'скатерть круглая',
'скатерть лувр', 'скатерть муза', 'скатерть прямоугольная',
'скатерть рим', 'скатерть сидней',
'халат вафельный']
# КАТЕГОРИЯ: интерьер/декор/мебель
interior=['муляж "райские', 'муляж ананас',
'муляж апельсин', 'муляж баклажан', 'муляж банан', 'муляж банан,',
'муляж булка', 'муляж виноград', 'муляж виноград,', 'муляж вишня',
'муляж вишня,', 'муляж гранат', 'муляж груша', 'муляж груша,',
'муляж долька', 'муляж желудь', 'муляж зеленое', 'муляж клубника',
'муляж красное', 'муляж лайм', 'муляж лимон', 'муляж лимон,',
'муляж манго', 'муляж мандарин', 'муляж мандарин,',
'муляж морковь', 'муляж оранжевое', 'муляж перец', 'муляж перец,',
'муляж персик', 'муляж персик,', 'муляж персики', 'муляж томат',
'муляж томат,', 'муляж тыквы', 'муляж хлеб', 'муляж черешня',
'муляж чеснок', 'муляж яблоко', 'муляж яблоко,',
'вешалка -', 'вешалка valiant',
'вешалка гардеробная', 'вешалка деревянная', 'вешалка для',
'вешалка металлическая', 'вешалка надверная', 'вешалка напольная',
'вешалка настенная', 'вешалка ника', 'вешалка с',
'вешалка самоклеющая', 'вешалка-перекладина valiant',
'вешалка-плечики 3', 'вешалка-плечики без',
'вешалка-стойка сакура', 'вешалка-стойка №',
'вешалка-сушилка gimi', 'вешалки мягкие',
'декоративная композиция', 'декоративная коробка',
'искусственная композиция', 'искусственная лиана',
'искусственный лист', 'искусственный цветок',
'карниз алюминиевый', 'карниз для',
'ключница картина', 'ковер придверный',
'коврик bacchetta', 'коврик dasch', 'коврик sochi', 'коврик в',
'коврик влаговпитывающий', 'коврик ворсовый', 'коврик для',
'коврик интерьерный', 'коврик кухонный', 'коврик придверный',
'коврик придверный,', 'коврик противоскользящий',
'коврик резиновый', 'коврик хлопковый',
'ковёр придверный',
'короб стеллажный', 'коробка infinity',
'коробка для',
'набор вешалок',
'набор ковров',
'обувница-3 квадро',
'полка для', 'полки qwerty',
'светильник настольный',
'складной детский', 'стеллаж для',
'фоторамка alparaisa',
'цветок искусственный', 'ваза маскарад']
# КАТЕГОРИЯ: бытовая техника
Appliances=[
'кипятильник электрический', 'миксер delta', 'миксер василиса',
'миксер электрический',
'пылесос delta','утюг delta', 'утюг электрический',
'фен дорожный',
'чайник электрический', 'электроштопор qwerty', 'электроштопор']
# КАТЕГОРИЯ: инструменты
tools=['измерительный алюминиевый',
'измерительный угольник,',
'крепеж для',
'линейка, длина',
'многофункциональный инструмент',
'набор инструментов',
'набор прецизионных', 'набор сверел',
'петля приварная', 'петля рояльная', 'петля-стрела пс-286',
'основание для',
'паста для',
'пружина дверная',
'сверло по', 'сверло-фреза, 6', 'сверло-фреза, 8',
'холодная сварка',
'штангенциркуль 150']
def categorize_product(word):
if word['name'] in flower:
return 'растения'
if word['name'] in household_product:
return 'хозтовары'
if word['name'] in dishes:
return 'посуда'
if word['name'] in hygiene:
return 'гигиена'
if word['name'] in textile:
return 'текстиль'
if word['name'] in interior:
return 'интерьер'
if word['name'] in Appliances:
return 'бытовая техника'
if word['name'] in tools:
return 'инструмент'
else:
return 'другое'
data['product_category'] = data.apply(categorize_product,axis=1)
data.head()
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | name | product_category | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке алое вера, d12, h30 | 1 | 142.0 | 10 | 1 | Monday | 0 | комнатное растение | растения |
| 1 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке кофе арабика, d12,... | 1 | 194.0 | 10 | 1 | Monday | 0 | комнатное растение | растения |
| 2 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | радермахера d-12 см h-20 см | 1 | 112.0 | 10 | 1 | Monday | 0 | радермахера d-12 | растения |
| 3 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | хризолидокарпус лутесценс d-9 см | 1 | 179.0 | 10 | 1 | Monday | 0 | хризолидокарпус лутесценс | растения |
| 4 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | циперус зумула d-12 см h-25 см | 1 | 112.0 | 10 | 1 | Monday | 0 | циперус зумула | растения |
Проверим все ли товары распределены по категориям.
data.query('product_category=="другое"')
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | name | product_category |
|---|
data['product_category'].value_counts()
растения 2804 хозтовары 1606 интерьер 604 посуда 387 текстиль 104 гигиена 49 инструмент 29 бытовая техника 26 Name: product_category, dtype: int64
data['product_category'].isna().sum()
0
Посмотрим количество проданного товара по категория.
cat_quantity=data.groupby('product_category')['quantity'].agg('sum').reset_index()
cat_quantity
| product_category | quantity | |
|---|---|---|
| 0 | бытовая техника | 29 |
| 1 | гигиена | 90 |
| 2 | инструмент | 553 |
| 3 | интерьер | 3694 |
| 4 | посуда | 1219 |
| 5 | растения | 4110 |
| 6 | текстиль | 363 |
| 7 | хозтовары | 3576 |
fig = go.Figure(data=[go.Pie(labels=cat_quantity['product_category'],values=cat_quantity['quantity'])])
fig.update_layout(title='Распределение количества проданных товаров по категориям', # указываем заголовок графика
width=800, # указываем размеры графика
height=600,
annotations=[dict(x=1.12, # вручную настраиваем аннотацию легенды
y=1.05,
text='категории товаров',
showarrow=False)])
fig.show()
fig = px.bar(cat_quantity.sort_values(by='quantity', ascending=True), # загружаем данные и заново их сортируем
x='product_category', # указываем столбец с данными для оси X
y='quantity', # указываем столбец с данными для оси Y
text='quantity' # добавляем аргумент, который отобразит текст с информацией
)
# оформляем график
fig.update_layout(title='Количество проданных товаров по категориям',
xaxis_title='Категория',
yaxis_title='Количетво товаров')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД:ТОП-3 количества проданного товара в следующих категориях- это растения 30,1%, интерьер 27,1% и хозтовары 26,2%.
Посмотрим распределение выручки по категориям. Для этого создадим столбец revenue
data['revenue']=data['price']*data['quantity']
cat_revenue=data.groupby('product_category')['revenue'].agg('sum').reset_index().round()
cat_revenue
| product_category | revenue | |
|---|---|---|
| 0 | бытовая техника | 26809.0 |
| 1 | гигиена | 15958.0 |
| 2 | инструмент | 24443.0 |
| 3 | интерьер | 527142.0 |
| 4 | посуда | 268756.0 |
| 5 | растения | 577654.0 |
| 6 | текстиль | 247763.0 |
| 7 | хозтовары | 2285293.0 |
fig = go.Figure(data=[go.Pie(labels=cat_revenue['product_category'],values=cat_revenue['revenue'])])
fig.update_layout(title='Распределение выручки по категориям', # указываем заголовок графика
width=800, # указываем размеры графика
height=600,
annotations=[dict(x=1.12, # вручную настраиваем аннотацию легенды
y=1.05,
text='категории товаров',
showarrow=False)])
fig.show()
fig = px.bar(cat_revenue.sort_values(by='revenue', ascending=True), # загружаем данные и заново их сортируем
x='product_category', # указываем столбец с данными для оси X
y='revenue', # указываем столбец с данными для оси Y
text='revenue' # добавляем аргумент, который отобразит текст с информацией
)
# оформляем график
fig.update_layout(title='Выручка по категориям',
xaxis_title='Категория',
yaxis_title='Выручка')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД:ТОП-3 категорий по выручке- это хозтовары 57,5%, растения 14,5% и интерьер 13,3%.
Посмотрим средний чек по категориям:
average_check=data.groupby('product_category')['price'].agg('mean').reset_index().round()
average_check
| product_category | price | |
|---|---|---|
| 0 | бытовая техника | 915.0 |
| 1 | гигиена | 191.0 |
| 2 | инструмент | 330.0 |
| 3 | интерьер | 435.0 |
| 4 | посуда | 381.0 |
| 5 | растения | 152.0 |
| 6 | текстиль | 1057.0 |
| 7 | хозтовары | 1236.0 |
# строим столбчатую диаграмму
fig = px.bar(average_check.sort_values(by='price', ascending=True), # загружаем данные и заново их сортируем
x='price', # указываем столбец с данными для оси X
y='product_category', # указываем столбец с данными для оси Y
text='price' # добавляем аргумент, который отобразит текст с информацией
)
# оформляем график
fig.update_layout(title='Средний чек по категориям',
xaxis_title='Средний чек, руб',
yaxis_title='Категория')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД:ТОП-3 категорий по среднему чеку- это хозтовары 1236р, текстиль 1057р и бытовая техника 915р.
Проанализируем продажи по месяцам.
data.head()
| date | customer_id | order_id | product | quantity | price | month | day | day_week | hours | name | product_category | revenue | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке алое вера, d12, h30 | 1 | 142.0 | 10 | 1 | Monday | 0 | комнатное растение | растения | 142.0 |
| 1 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | комнатное растение в горшке кофе арабика, d12,... | 1 | 194.0 | 10 | 1 | Monday | 0 | комнатное растение | растения | 194.0 |
| 2 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | радермахера d-12 см h-20 см | 1 | 112.0 | 10 | 1 | Monday | 0 | радермахера d-12 | растения | 112.0 |
| 3 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | хризолидокарпус лутесценс d-9 см | 1 | 179.0 | 10 | 1 | Monday | 0 | хризолидокарпус лутесценс | растения | 179.0 |
| 4 | 2018-10-01 | ee47d746-6d2f-4d3c-9622-c31412542920 | 68477 | циперус зумула d-12 см h-25 см | 1 | 112.0 | 10 | 1 | Monday | 0 | циперус зумула | растения | 112.0 |
sales_month = data.groupby(['month','product_category'], as_index=False)[['revenue']].sum().round()
sales_month
| month | product_category | revenue | |
|---|---|---|---|
| 0 | 1 | бытовая техника | 7830.0 |
| 1 | 1 | гигиена | 1330.0 |
| 2 | 1 | инструмент | 106.0 |
| 3 | 1 | интерьер | 43913.0 |
| 4 | 1 | посуда | 35038.0 |
| ... | ... | ... | ... |
| 83 | 12 | интерьер | 44598.0 |
| 84 | 12 | посуда | 39554.0 |
| 85 | 12 | растения | 46794.0 |
| 86 | 12 | текстиль | 31918.0 |
| 87 | 12 | хозтовары | 391012.0 |
88 rows × 3 columns
# строим линейный график
fig = px.line(sales_month, # загружаем данные
x='month', # указываем столбец с данными для оси X
y='revenue', # указываем столбец с данными для оси Y
color='product_category', # обозначаем категорию для разделения цветом
markers=True) # отображаем маркеры (точки) на графике
# оформляем график
fig.update_layout(title='Выручка по месяцам',
xaxis_title='Месяц',
yaxis_title='Выручка')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД: В категории растения пик продаж приходится на апрель, май. Сезон посадок. Падение в августе. В категории текстиль пик продаж в январе. Минимальная выручка в августе, затем наблюдается небольшой рост до декабря. В категории хозтовары пик продаж приходится на октябрь, декабрь. В категории посуда наблюдается падение выручки с января по июнь, затем рост с пиком продаж в ноябре. В категории интерьер пик продаж в октябре.В остальные месяцы не стабильных продаж, в апреле, августе резкие падения продаж. В категории инструмент стабильно пизкая выручка, резкий пик с августа по октябрь. В категории гигиена выручка растет с июня по август, затем падает. В категории бытовая техника пик в январе, затем падение выручки до июля, с июля по ноябрь выручка немного растет.
Проанализируем продажи по дням неделям
sales_day = data.groupby(['day_week','product_category'], as_index=False)[['revenue']].sum().round()
sales_day
| day_week | product_category | revenue | |
|---|---|---|---|
| 0 | Friday | бытовая техника | 5185.0 |
| 1 | Friday | гигиена | 2635.0 |
| 2 | Friday | инструмент | 3064.0 |
| 3 | Friday | интерьер | 71636.0 |
| 4 | Friday | посуда | 28592.0 |
| 5 | Friday | растения | 77131.0 |
| 6 | Friday | текстиль | 59368.0 |
| 7 | Friday | хозтовары | 335424.0 |
| 8 | Monday | бытовая техника | 6284.0 |
| 9 | Monday | гигиена | 5994.0 |
| 10 | Monday | инструмент | 1900.0 |
| 11 | Monday | интерьер | 85828.0 |
| 12 | Monday | посуда | 49398.0 |
| 13 | Monday | растения | 104520.0 |
| 14 | Monday | текстиль | 14659.0 |
| 15 | Monday | хозтовары | 388407.0 |
| 16 | Saturday | бытовая техника | 1994.0 |
| 17 | Saturday | гигиена | 596.0 |
| 18 | Saturday | инструмент | 32.0 |
| 19 | Saturday | интерьер | 37275.0 |
| 20 | Saturday | посуда | 12422.0 |
| 21 | Saturday | растения | 43185.0 |
| 22 | Saturday | текстиль | 11080.0 |
| 23 | Saturday | хозтовары | 216376.0 |
| 24 | Sunday | бытовая техника | 4032.0 |
| 25 | Sunday | гигиена | 2683.0 |
| 26 | Sunday | инструмент | 435.0 |
| 27 | Sunday | интерьер | 64916.0 |
| 28 | Sunday | посуда | 24223.0 |
| 29 | Sunday | растения | 65772.0 |
| 30 | Sunday | текстиль | 17273.0 |
| 31 | Sunday | хозтовары | 256734.0 |
| 32 | Thursday | бытовая техника | 1087.0 |
| 33 | Thursday | гигиена | 784.0 |
| 34 | Thursday | инструмент | 14710.0 |
| 35 | Thursday | интерьер | 77071.0 |
| 36 | Thursday | посуда | 75556.0 |
| 37 | Thursday | растения | 92722.0 |
| 38 | Thursday | текстиль | 31134.0 |
| 39 | Thursday | хозтовары | 339862.0 |
| 40 | Tuesday | бытовая техника | 7523.0 |
| 41 | Tuesday | гигиена | 2333.0 |
| 42 | Tuesday | инструмент | 3969.0 |
| 43 | Tuesday | интерьер | 111314.0 |
| 44 | Tuesday | посуда | 40049.0 |
| 45 | Tuesday | растения | 98038.0 |
| 46 | Tuesday | текстиль | 92344.0 |
| 47 | Tuesday | хозтовары | 406617.0 |
| 48 | Wednesday | бытовая техника | 704.0 |
| 49 | Wednesday | гигиена | 933.0 |
| 50 | Wednesday | инструмент | 333.0 |
| 51 | Wednesday | интерьер | 79101.0 |
| 52 | Wednesday | посуда | 38516.0 |
| 53 | Wednesday | растения | 96285.0 |
| 54 | Wednesday | текстиль | 21905.0 |
| 55 | Wednesday | хозтовары | 341873.0 |
# строим линейный график
fig = px.line(sales_day, # загружаем данные
x='day_week', # указываем столбец с данными для оси X
y='revenue', # указываем столбец с данными для оси Y
color='product_category', # обозначаем категорию для разделения цветом
markers=True) # отображаем маркеры (точки) на графике
# оформляем график
fig.update_layout(title='Выручка по дням недели',
xaxis_title='День недели',
yaxis_title='Выручка')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД: В категории растения пик продаж приходится на понедельник, вторник. Падение в субботу. В категории текстиль пик продаж во вторник и пятницу, падение в субботу, воскресенье, понедельник. В категории хозтовары пик продаж приходится на вторник, понельник, минимальные продажи в субботу и воскресенье. В категории посуда наблюдается пик продаж в четверг, падение в субботу. В категории интерьер пик продаж во вторник, минимальные продажи в субботу. В категории инструмент стабильно пизкая выручка, резкий пик в четверг. В категории гигиена пик выручки в понедельник. В категории бытовая техника пик в понедельник, вторник.
Проанализируем продажи по часам.
sales_hours = data.groupby(['hours','product_category'], as_index=False)[['revenue']].sum().round()
sales_hours
| hours | product_category | revenue | |
|---|---|---|---|
| 0 | 0 | бытовая техника | 922.0 |
| 1 | 0 | гигиена | 442.0 |
| 2 | 0 | интерьер | 17088.0 |
| 3 | 0 | посуда | 2626.0 |
| 4 | 0 | растения | 5171.0 |
| ... | ... | ... | ... |
| 159 | 23 | интерьер | 11544.0 |
| 160 | 23 | посуда | 9386.0 |
| 161 | 23 | растения | 11966.0 |
| 162 | 23 | текстиль | 472.0 |
| 163 | 23 | хозтовары | 42746.0 |
164 rows × 3 columns
# строим линейный график
fig = px.line(sales_hours, # загружаем данные
x='hours', # указываем столбец с данными для оси X
y='revenue', # указываем столбец с данными для оси Y
color='product_category', # обозначаем категорию для разделения цветом
markers=True) # отображаем маркеры (точки) на графике
# оформляем график
fig.update_layout(title='Выручка по часам',
xaxis_title='Часы',
yaxis_title='Выручка')
fig.show() # выводим график
ПРОМЕЖУТОЧНЫЙ ВЫВОД: В категории растения пик продаж приходится на 13:00, 15:00. В категории текстиль пик продаж в 13:00. В категории хозтовары пик продаж приходится на 11:00. В категории посуда наблюдается пик продаж в 17:00. В категории интерьер пик в 7:00, 14:00 и в 21:00. В категории инструмент в 14:00. В категории гигиена пик продаж в 16:00. В категории бытовая техника пик продаж в 19:00.
Проанализируем какие товары приносят большую прибыль компании.
#Сколько всего наименований товаров представлено
len(data['product'].unique())
2340
Поделим товары на группы ABC по продажам
# создаем сводную таблицу
quantity_abc = data.pivot_table(index = 'product', values = 'quantity',
aggfunc = 'sum').sort_values(by='quantity', ascending=False)
# посчитаем долю в общей выручке
quantity_abc['percent']=round((quantity_abc['quantity']/sum(quantity_abc['quantity']))*100,4)
# доля в общей выручке с нарастающим итогом
quantity_abc['accumulated_percent']=quantity_abc['percent'].cumsum()
# делим на группы ABC
quantity_abc['abc'] = quantity_abc['accumulated_percent'].apply(lambda abc: 'A' if abc < 80 else('B' if 80 <= abc < 95 else 'C'))
quantity_abc
| quantity | percent | accumulated_percent | abc | |
|---|---|---|---|---|
| product | ||||
| муляж яблоко 9 см красное | 618 | 4.5328 | 4.5328 | A |
| вешалки мягкие для деликатных вещей 3 шт шоколад | 335 | 2.4571 | 6.9899 | A |
| муляж яблоко зеленый 9 см полиуретан | 308 | 2.2591 | 9.2490 | A |
| ручка-скоба рс-100 белая *трибатрон*, 1108035 | 201 | 1.4743 | 10.7233 | A |
| крепеж для пружины дверной, 1107055 | 170 | 1.2469 | 11.9702 | A |
| ... | ... | ... | ... | ... |
| примула комнатная d9 см розовая | 1 | 0.0073 | 99.9447 | C |
| примула комнатная d9 см красная | 1 | 0.0073 | 99.9520 | C |
| tepмокружка avex freeflow 700 мл сталь avex0776 | 1 | 0.0073 | 99.9593 | C |
| портулак рассада однолетних цветов в кассете по 6 шт | 1 | 0.0073 | 99.9666 | C |
| ёрш унитазный с подставкой wc "стандарт", мультипласт 1712010 | 1 | 0.0073 | 99.9739 | C |
2340 rows × 4 columns
Поделим товары на группы ABC по выручке
# создаем сводную таблицу
revenue_abc = data.pivot_table(index = 'product', values = 'revenue',
aggfunc = 'sum').sort_values(by='revenue', ascending=False)
# посчитаем долю в общей выручке
revenue_abc['percent']=round((revenue_abc['revenue']/sum(revenue_abc['revenue']))*100,4)
# доля в общей выручке с нарастающим итогом
revenue_abc['accumulated_percent']=revenue_abc['percent'].cumsum()
# делим на группы ABC
revenue_abc['abc'] = revenue_abc['accumulated_percent'].apply(lambda abc: 'A' if abc < 80 else('B' if 80 <= abc < 95 else 'C'))
revenue_abc
| revenue | percent | accumulated_percent | abc | |
|---|---|---|---|---|
| product | ||||
| простынь вафельная 200х180 см wellness rw180-01 100% хлопок | 53232.0 | 1.3396 | 1.3396 | A |
| сумка-тележка 2-х колесная gimi argo синяя | 50405.0 | 1.2684 | 2.6080 | A |
| вешалки мягкие для деликатных вещей 3 шт шоколад | 49596.0 | 1.2481 | 3.8561 | A |
| тележка багажная delta тбр-22 синий грузоподъемность 20 кг сумка и 50 кг каркас россия | 33992.0 | 0.8554 | 4.7115 | A |
| муляж яблоко 9 см красное | 32702.0 | 0.8229 | 5.5344 | A |
| ... | ... | ... | ... | ... |
| петрушка итальянский гигант 2 г 4660010776553 | 10.0 | 0.0003 | 99.9983 | C |
| морковь детская сладость 2 г 4660010775921 | 10.0 | 0.0003 | 99.9986 | C |
| цинния коралловая красавица 0,2 г 4660010773323 | 10.0 | 0.0003 | 99.9989 | C |
| огурец засолочный 0,3 г 4660010776102 | 10.0 | 0.0003 | 99.9992 | C |
| горох амброзия 10,0 г 4660010772616 | 9.0 | 0.0002 | 99.9994 | C |
2340 rows × 4 columns
Соберем группы AA AB ВA BB BC CB CC AC CA
abc_final=quantity_abc.merge(revenue_abc, on='product').reset_index()
abc_final
| product | quantity | percent_x | accumulated_percent_x | abc_x | revenue | percent_y | accumulated_percent_y | abc_y | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | муляж яблоко 9 см красное | 618 | 4.5328 | 4.5328 | A | 32702.0 | 0.8229 | 5.5344 | A |
| 1 | вешалки мягкие для деликатных вещей 3 шт шоколад | 335 | 2.4571 | 6.9899 | A | 49596.0 | 1.2481 | 3.8561 | A |
| 2 | муляж яблоко зеленый 9 см полиуретан | 308 | 2.2591 | 9.2490 | A | 17572.0 | 0.4422 | 14.3108 | A |
| 3 | ручка-скоба рс-100 белая *трибатрон*, 1108035 | 201 | 1.4743 | 10.7233 | A | 5829.0 | 0.1467 | 45.3109 | A |
| 4 | крепеж для пружины дверной, 1107055 | 170 | 1.2469 | 11.9702 | A | 3290.0 | 0.0828 | 62.2833 | A |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2335 | примула комнатная d9 см розовая | 1 | 0.0073 | 99.9447 | C | 98.0 | 0.0025 | 99.6631 | C |
| 2336 | примула комнатная d9 см красная | 1 | 0.0073 | 99.9520 | C | 98.0 | 0.0025 | 99.6706 | C |
| 2337 | tepмокружка avex freeflow 700 мл сталь avex0776 | 1 | 0.0073 | 99.9593 | C | 2399.0 | 0.0604 | 69.8992 | A |
| 2338 | портулак рассада однолетних цветов в кассете п... | 1 | 0.0073 | 99.9666 | C | 128.0 | 0.0032 | 99.2941 | C |
| 2339 | ёрш унитазный с подставкой wc "стандарт", муль... | 1 | 0.0073 | 99.9739 | C | 67.0 | 0.0017 | 99.8459 | C |
2340 rows × 9 columns
abc_final['abc_xy']=abc_final['abc_x']+abc_final['abc_y']
abc=abc_final[['product', 'abc_xy']]
abc
| product | abc_xy | |
|---|---|---|
| 0 | муляж яблоко 9 см красное | AA |
| 1 | вешалки мягкие для деликатных вещей 3 шт шоколад | AA |
| 2 | муляж яблоко зеленый 9 см полиуретан | AA |
| 3 | ручка-скоба рс-100 белая *трибатрон*, 1108035 | AA |
| 4 | крепеж для пружины дверной, 1107055 | AA |
| ... | ... | ... |
| 2335 | примула комнатная d9 см розовая | CC |
| 2336 | примула комнатная d9 см красная | CC |
| 2337 | tepмокружка avex freeflow 700 мл сталь avex0776 | CA |
| 2338 | портулак рассада однолетних цветов в кассете п... | CC |
| 2339 | ёрш унитазный с подставкой wc "стандарт", муль... | CC |
2340 rows × 2 columns
Товары с категорией АА это самые важные товары приносят значительный доход, часто покупаются, приносят выручку. А значит должны постоянно быть в наличии, с бесперебойными поставками и хорошим запасом.
AB
товары с высоким показателем по обороту и средним по выручке. Здесь важен постоянный мониторинг показателей. Для товаров в этой категории возможен пересмотр ценовой политики, так незначительное увеличение цены товаров приведет к увеличению выручки магазина.
AC
низкоприбыльный ассортимент с высоким оборотом. Важно не допускать снижения продаж по данной группе и следить за ценой у конкурентов.
BB
устойчивые середняки. По этой группе оставляйте все как есть.
BA
товары с высоким показателем по прибыли и средним по оборот. Здесь важен постоянный мониторинг показателей. Стоит найти ему лучшее место на сайте, или провести промоактивность и магазин получит значительную прибыль.
BC
низкоприбыльный ассортимент со средним уровнем оборачиваемости. Расскажите покупателям о преимуществах этого товара, чтобы повысить прибыльность.
CA
товары с высокой прибыльностью, но низким оборотом. Это могут быть эксклюзивные товары и новинки.
CB
товары с небольшим оборотом, но средней прибылью. Можно провести акцию, также изменить их место на сайте.
CC
товары аутсайдеры Они приносят минимум прибыли — их количество можно смело уменьшать или вовсе выводить из ассортимента
Выделим основной и дополнительный ассортимент. Товары, входящие в группы АА, AB, BA, BB являются основным ассортиментом. Товары, входящие в группы АС, СА, BС, СB являются дополнительным ассортиментом.
С помощью дополнительного ассортимента можно значительно увеличить средний чек. Эти товары приносят немного прибыли. Однако они расширяют ассортимент и обеспечивают небольшой, но стабильный доход.
data_abc=abc.merge(data, on='product').reset_index()
data_abc.head()
| index | product | abc_xy | date | customer_id | order_id | quantity | price | month | day | day_week | hours | name | product_category | revenue | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | муляж яблоко 9 см красное | AA | 2018-10-30 23:00:00 | 9804e44f-bf1d-4b3a-992f-e2a575b43b7d | 68806 | 4 | 59.0 | 10 | 30 | Tuesday | 23 | муляж яблоко | интерьер | 236.0 |
| 1 | 1 | муляж яблоко 9 см красное | AA | 2018-11-01 08:00:00 | aa42dc38-780f-4b50-9a65-83b6fa64e766 | 68815 | 170 | 51.0 | 11 | 1 | Thursday | 8 | муляж яблоко | интерьер | 8670.0 |
| 2 | 2 | муляж яблоко 9 см красное | AA | 2018-11-02 11:00:00 | 0c5aaa88-e346-4f87-8f7a-ad8cbc04e965 | 68831 | 140 | 59.0 | 11 | 2 | Friday | 11 | муляж яблоко | интерьер | 8260.0 |
| 3 | 3 | муляж яблоко 9 см красное | AA | 2018-11-17 01:00:00 | 2c2b3410-8218-4671-a208-4d20ed55056a | 69028 | 1 | 59.0 | 11 | 17 | Saturday | 1 | муляж яблоко | интерьер | 59.0 |
| 4 | 4 | муляж яблоко 9 см красное | AA | 2019-05-20 21:00:00 | 5d189e88-d4d6-4eac-ab43-fa65a3c4d106 | 71478 | 300 | 51.0 | 5 | 20 | Monday | 21 | муляж яблоко | интерьер | 15300.0 |
additional=['AC', 'CA', 'BC', 'CB']
basic=['AA', 'AB', 'BA', 'BB']
def group(word):
if word['abc_xy'] in additional:
return 'дополнительный'
if word['abc_xy'] in basic:
return 'основной'
else:
return 'СС'
data_abc['range'] = data_abc.apply(group,axis=1)
data_abc.head()
| index | product | abc_xy | date | customer_id | order_id | quantity | price | month | day | day_week | hours | name | product_category | revenue | range | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | муляж яблоко 9 см красное | AA | 2018-10-30 23:00:00 | 9804e44f-bf1d-4b3a-992f-e2a575b43b7d | 68806 | 4 | 59.0 | 10 | 30 | Tuesday | 23 | муляж яблоко | интерьер | 236.0 | основной |
| 1 | 1 | муляж яблоко 9 см красное | AA | 2018-11-01 08:00:00 | aa42dc38-780f-4b50-9a65-83b6fa64e766 | 68815 | 170 | 51.0 | 11 | 1 | Thursday | 8 | муляж яблоко | интерьер | 8670.0 | основной |
| 2 | 2 | муляж яблоко 9 см красное | AA | 2018-11-02 11:00:00 | 0c5aaa88-e346-4f87-8f7a-ad8cbc04e965 | 68831 | 140 | 59.0 | 11 | 2 | Friday | 11 | муляж яблоко | интерьер | 8260.0 | основной |
| 3 | 3 | муляж яблоко 9 см красное | AA | 2018-11-17 01:00:00 | 2c2b3410-8218-4671-a208-4d20ed55056a | 69028 | 1 | 59.0 | 11 | 17 | Saturday | 1 | муляж яблоко | интерьер | 59.0 | основной |
| 4 | 4 | муляж яблоко 9 см красное | AA | 2019-05-20 21:00:00 | 5d189e88-d4d6-4eac-ab43-fa65a3c4d106 | 71478 | 300 | 51.0 | 5 | 20 | Monday | 21 | муляж яблоко | интерьер | 15300.0 | основной |
range_data=data_abc['range'].value_counts().reset_index()
range_data
| index | range | |
|---|---|---|
| 0 | основной | 3760 |
| 1 | дополнительный | 1431 |
| 2 | СС | 418 |
fig = go.Figure(data=[go.Pie(labels=('основной','дополнительный','СС'),values=range_data['range'])])
fig.update_layout(title='Распределение товаров на основные, дополнительные, СС категорию товаров ', # указываем заголовок графика
width=800, # указываем размеры графика
height=400,
annotations=[dict(x=1.12, # вручную настраиваем аннотацию легенды
y=1.05,
text='Ассортимент',
showarrow=False)])
fig.show()
В интеренет-магазине 67% товаров из основного ассортимента, 25,5% из дополнительного ассортимента, 7,45% товары из группы СС (желательно от них отказаться)
data_abc.head()
| index | product | abc_xy | date | customer_id | order_id | quantity | price | month | day | day_week | hours | name | product_category | revenue | range | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | муляж яблоко 9 см красное | AA | 2018-10-30 23:00:00 | 9804e44f-bf1d-4b3a-992f-e2a575b43b7d | 68806 | 4 | 59.0 | 10 | 30 | Tuesday | 23 | муляж яблоко | интерьер | 236.0 | основной |
| 1 | 1 | муляж яблоко 9 см красное | AA | 2018-11-01 08:00:00 | aa42dc38-780f-4b50-9a65-83b6fa64e766 | 68815 | 170 | 51.0 | 11 | 1 | Thursday | 8 | муляж яблоко | интерьер | 8670.0 | основной |
| 2 | 2 | муляж яблоко 9 см красное | AA | 2018-11-02 11:00:00 | 0c5aaa88-e346-4f87-8f7a-ad8cbc04e965 | 68831 | 140 | 59.0 | 11 | 2 | Friday | 11 | муляж яблоко | интерьер | 8260.0 | основной |
| 3 | 3 | муляж яблоко 9 см красное | AA | 2018-11-17 01:00:00 | 2c2b3410-8218-4671-a208-4d20ed55056a | 69028 | 1 | 59.0 | 11 | 17 | Saturday | 1 | муляж яблоко | интерьер | 59.0 | основной |
| 4 | 4 | муляж яблоко 9 см красное | AA | 2019-05-20 21:00:00 | 5d189e88-d4d6-4eac-ab43-fa65a3c4d106 | 71478 | 300 | 51.0 | 5 | 20 | Monday | 21 | муляж яблоко | интерьер | 15300.0 | основной |
Рассмотрим распределение на основной и дополнительный ассортимент в разрезе категорий товаров.
data_cor = data_abc.query('range !="СС"').pivot_table(index=['product_category','range'], values='product', aggfunc='count').reset_index()
data_cor
| product_category | range | product | |
|---|---|---|---|
| 0 | бытовая техника | дополнительный | 3 |
| 1 | бытовая техника | основной | 22 |
| 2 | гигиена | дополнительный | 17 |
| 3 | гигиена | основной | 16 |
| 4 | инструмент | дополнительный | 10 |
| 5 | инструмент | основной | 12 |
| 6 | интерьер | дополнительный | 191 |
| 7 | интерьер | основной | 379 |
| 8 | посуда | дополнительный | 115 |
| 9 | посуда | основной | 220 |
| 10 | растения | дополнительный | 818 |
| 11 | растения | основной | 1733 |
| 12 | текстиль | дополнительный | 34 |
| 13 | текстиль | основной | 61 |
| 14 | хозтовары | дополнительный | 243 |
| 15 | хозтовары | основной | 1317 |
fig = px.bar(data_cor.sort_values(by='product', ascending=True), # загружаем данные и заново их сортируем
x='product', # указываем столбец с данными для оси X
y='product_category', # указываем столбец с данными для оси Y
text='product', # добавляем аргумент, который отобразит текст с информацией
color='range')
# оформляем график
fig.update_layout(title='Распределение на основной и дополнительный ассортимент в категориях',
xaxis_title='Количество товара',
yaxis_title='Категория')
fig.show() # выводим график
Больше всего основного товара в категориях хозтовары. В группе гигиена больше дополнительного, чем основного товара.
main=abc_final.query('(abc_x!="C")&(abc_y!="C")')['quantity']
additional=abc_final.query('abc_x=="C" or abc_y=="C"')['quantity']
results = st.ttest_ind(main, additional,equal_var = False)
alpha = 0.05
print('p-значение:', results.pvalue)
if results.pvalue < alpha:
print("Отвергаем нулевую гипотезу")
else:
print("Не получилось отвергнуть нулевую гипотезу")
p-значение: 3.304724033030944e-20 Отвергаем нулевую гипотезу
Есть основания опровергнуть гипотезу, что средний объем продаж в основном и дополнительном ассортименте одинаковый.
print('Средний объем продаж по основному ассортименту:', round(main.mean()))
print('Средний объем продаж по дополнительному ассортименту:', round(additional.mean()))
Средний объем продаж по основному ассортименту: 10 Средний объем продаж по дополнительному ассортименту: 2
𝐻0 — Средняя выручка в основном и дополнительном ассортименте одинаковая.
𝐻1— Средняя выручка в основном и дополнительном ассортименте различается.
main=abc_final.query('(abc_x!="C")&(abc_y!="C")')['revenue']
additional=abc_final.query('abc_x=="C" or abc_y=="C"')['revenue']
results = st.ttest_ind(main, additional,equal_var = False)
alpha = 0.05
print('p-значение:', results.pvalue)
if results.pvalue < alpha:
print("Отвергаем нулевую гипотезу")
else:
print("Не получилось отвергнуть нулевую гипотезу")
p-значение: 1.841691542981164e-61 Отвергаем нулевую гипотезу
Есть основания опровергнуть гипотезу, что средняя выручка в основном и дополнительном ассортименте одинаковая.
print('Средняя выручка по основному ассортименту:', round(main.mean(), 2))
print('Средняя выручка по дополнительному ассортименту:', round(additional.mean(), 2))
Средняя выручка по основному ассортименту: 3108.46 Средняя выручка по дополнительному ассортименту: 526.32
ПРЕДОБРАБОТКА ДАННЫХ
В таблице 6 столбцов, 7474 строк. Типы данных: date int64 -целочисленный customer_id object -строки order_id int64 -целочисленный product object -строки quantity int64 -целочисленный price float64 - вещественный Пропусков в столбцах нет.
Столбец date преобразован тип данных на дату. Проведена проверка на дубликаты явные/неявные. Проведена проверка на аномалии в данных. Добавлены необходимых для анализа столбцы month,day,day_week,hours.
После предобработки осталось в датасете 5609 строк.
ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ
Столбец product поделен на 7 категорий: бытовая техника, гигиена, инструмент, интерьер, посуда, растения, текстиль, хозтовары.
В магазине представлен 2341 товар. Самый популярный пеларгония. Данные взяты за период 2018-10-01 по 2020-01-31. В датасете представлен 2451 покупатель. Самый активный покупатель c971fb21-d54c-4134-938f-16b62ee86d3b. Больше всего покупок было 2019-04-27 (51 покупка).
Проведен анализ в разрезе категорий (объем продаж, выручка, средний чек, продажи по месяцам, дням недели, часам)
ТОП-3 категорий по количеству проданного товара: растения 30,1%, интерьер 27,1% и хозтовары 26,2%. ТОП-3 категорий по выручке- это хозтовары 57,5%, растения 14,5% и интерьер 13,3%. ТОП-3 категорий по среднему чеку- это хозтовары 1236р, текстиль 1057р и бытовая техника 915р.
Анализ продаж по месяцам:
В категории растения пик продаж приходится на апрель, май. Сезон посадок. Падение в августе. В категории текстиль пик продаж в январе. Минимальная выручка в августе, затем наблюдается небольшой рост до декабря. В категории хозтовары пик продаж приходится на октябрь, декабрь. В категории посуда наблюдается падение выручки с января по июнь, затем рост с пиком продаж в ноябре. В категории интерьер пик продаж в октябре.В остальные месяцы не стабильных продаж, в апреле, августе резкие падения продаж. В категории инструмент стабильно пизкая выручка, резкий пик с августа по октябрь. В категории гигиена выручка растет с июня по август, затем падает. В категории бытовая техника пик в январе, затем падение выручки до июля, с июля по ноябрь выручка немного растет.
Анализ продаж по дням недели:
В категории растения пик продаж приходится на понедельник, вторник. Падение в субботу. В категории текстиль пик продаж во вторник и пятницу, падение в субботу, воскресенье, понедельник. В категории хозтовары пик продаж приходится на вторник, понельник, минимальные продажи в субботу и воскресенье. В категории посуда наблюдается пик продаж в четверг, падение в субботу. В категории интерьер пик продаж во вторник, минимальные продажи в субботу. В категории инструмент стабильно пизкая выручка, резкий пик в четверг. В категории гигиена пик выручки в понедельник. В категории бытовая техника пик в понедельник, вторник.
Анализ продаж по часам:
В категории растения пик продаж приходится на 13:00, 15:00. В категории текстиль пик продаж в 13:00. В категории хозтовары пик продаж приходится на 11:00. В категории посуда наблюдается пик продаж в 17:00. В категории интерьер пик в 7:00, 14:00 и в 21:00. В категории инструмент в 14:00. В категории гигиена пик продаж в 16:00. В категории бытовая техника пик продаж в 19:00.
Проведен ABC анализ Выявлены товары, которые приносят большую выручку компании, больший объем продаж.
Рекомендации: АА это самые важные товары приносят значительный доход, часто покупаются, приносят выручку. А значит должны постоянно быть в наличии, с бесперебойными поставками и хорошим запасом.
AB товары с высоким показателем по обороту и средним по выручке. Здесь важен постоянный мониторинг показателей. Для товаров в этой категории возможен пересмотр ценовой политики, так незначительное увеличение цены товаров приведет к увеличению выручки магазина.
AC низкоприбыльный ассортимент с высоким оборотом. Важно не допускать снижения продаж по данной группе и следить за ценой у конкурентов.
BB устойчивые середняки. По этой группе оставляйте все как есть.
BA товары с высоким показателем по прибыли и средним по оборот. Здесь важен постоянный мониторинг показателей. Стоит найти ему лучшее место на сайте, или провести промоактивность и магазин получит значительную прибыль.
BC низкоприбыльный ассортимент со средним уровнем оборачиваемости. Расскажите покупателям о преимуществах этого товара, чтобы повысить прибыльность.
CA товары с высокой прибыльностью, но низким оборотом. Это могут быть эксклюзивные товары и новинки.
CB товары с небольшим оборотом, но средней прибылью. Можно провести акцию, также изменить их место на сайте.
CC товары аутсайдеры Они приносят минимум прибыли — их количество можно смело уменьшать или вовсе выводить из ассортимента
Выделен основной и дополнительный ассортимент. Товары, входящие в группы АА, AB, BA, BB являются основным ассортиментом. Товары, входящие в группы АС, СА, BС, СB являются дополнительным ассортиментом. С помощью дополнительного ассортимента можно значительно увеличить средний чек. Эти товары приносят немного прибыли. Однако они расширяют ассортимент и обеспечивают небольшой, но стабильный доход. В интеренет-магазине 67% товаров из основного ассортимента, 25,5% из дополнительного ассортимента, 7,45% товары из группы СС (желательно от них отказаться) Больше всего основного товара в категориях хозтовары. В группе гигиена больше дополнительного, чем основного товара.
ПО ПРОВЕРКЕ ГИПОТЕЗ Есть основания полагать, что средняя выручка и средний объем продаж в основном и дополнительном ассортименте различается.
ДАШБОРД: